package com.ruoyi.lifecycle.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 【请填写功能名称】对象 lif_manage_list
 *
 * @author ruoyi
 * @date 2022-03-23
 */
public class LifManageList extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 工艺设备id */
    private Long deviceId;

    /** 设备名称 */
    @Excel(name = "设备名称")
    private String deviceName;

    /** 项目类别 */
    //@Excel(name = "项目类别")
    private Long deviceType;

    /** 国别 */
    @Excel(name = "国别")
    private String nation;

    /** 单位 */
    @Excel(name = "单位")
    private String unit;

    /** 数量 */
    @Excel(name = "数量")
    private Long count;

    /** 单价 */
    @Excel(name = "单价")
    private BigDecimal price;

    /** 合计 */
    @Excel(name = "合计")
    private BigDecimal counts;

    /** 外汇 */
    @Excel(name = "外汇")
    private BigDecimal forex;

    /** 招标情况 */
    @Excel(name = "招标情况",readConverterExp = "0=委托公开,1=不招标,2=,合并招标,3=,委托邀请")
    private String tender;

    /** 实施方式 */
    //@Excel(name = "实施方式")
    private String implementation;

    /** 技术规格书（0未提交  1审批中  2  已审批） */
    @Excel(name = "技术规格书", readConverterExp = "0=未提交,1=审批中,2=,已=审批")
    private Long techBook;

    /** 市场调研报告（0未提交  1审批中  2  已审批） */
    @Excel(name = "市场调研报告", readConverterExp = "0=未提交,1=审批中,2=,已=审批")
    private Long marketReport;

    /** 采购申请（0未提交  1审批中  2  已审批） */
    @Excel(name = "采购申请", readConverterExp = "0=未提交,1=审批中,2=,已=审批")
    private Long purcRequest;

    /** 招标/询价（0未提交  1审批中  2  已审批） */
    @Excel(name = "招标/询价", readConverterExp = "0=未提交,1=审批中,2=,已=审批")
    private Long enquery;

    /** 合同状态（0未提交  1审批中  2  已审批  3提交预付款中  4预付款支付完成） */
    @Excel(name = "合同状态", readConverterExp = "0=未提交,1=审批中,2=,已=审批,3=提交预付款中,4=预付款支付完成")
    private Long contractStatus;

    /** 到货与送检（0未提交  1审批中  2  已审批) */
    @Excel(name = "到货与送检", readConverterExp = "到货与送检（0未提交  1审批中  2  已审批)")
    private Long deliveryTime;

    /** 设备验收（0未提交  1审批中  2  已审批） */
    @Excel(name = "设备验收", readConverterExp = "0=未提交,1=审批中,2=,已=审批")
    private Long equipAccept;

    /** 尾款支付（0未提交  1审批中  2  已审批） */
    @Excel(name = "尾款支付", readConverterExp = "0=未提交,1=审批中,2=,已=审批")
    private Long remainFund;

    /** 供货期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "供货期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderTime;

    /** 反馈评价 */
    @Excel(name = "反馈评价")
    private String feedback;

    /** 合同乙方 */
    @Excel(name = "合同乙方")
    private String contractYf;

    /** 合同金额 */
    @Excel(name = "合同金额")
    private Long contractAmount;

    /** 合同签约时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同签约时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date contractTime;

    /** 合同编号 */
    @Excel(name = "合同编号")
    private String contractNumber;

    /** 资金来源 */
    //@Excel(name = "资金来源")
    private String fundResource;

    /** 项目id */
    @Excel(name = "项目id")
    private Long projectId;

    /** 设备周期步骤（0状态确认 1市场调研 2采购申请 3招标管理  4合同及预付款 5到货送检 6验收 7尾款支付  默认为0） */
    @Excel(name = "设备周期步骤", readConverterExp = "0=状态确认,1=市场调研,2=采购申请,3=招标管理,4=合同及预付款,5=到货送检,6=验收,7=尾款支付,默=认为0")
    private Long devicelifeStatus;

    /** 首付款 */
    @Excel(name = "首付款")
    private String firstMoney;

    /** 首付款日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "首付款日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date firstMoneyTime;

    /** 进度款1 */
    @Excel(name = "进度款1")
    private String progressOne;

    /** 进度款1日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "进度款1日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date progressOneTime;

    /** 进度款2 */
    @Excel(name = "进度款2")
    private String progressTwo;

    /** 进度款2日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "进度款2日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date progressTwoTime;

    /** 尾款 */
    @Excel(name = "尾款")
    private String endMoney;

    /** 尾款日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "尾款日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endMoneyDate;

    public void setDeviceId(Long deviceId)
    {
        this.deviceId = deviceId;
    }

    public Long getDeviceId()
    {
        return deviceId;
    }
    public void setDeviceName(String deviceName)
    {
        this.deviceName = deviceName;
    }

    public String getDeviceName()
    {
        return deviceName;
    }
    public void setDeviceType(Long deviceType)
    {
        this.deviceType = deviceType;
    }

    public Long getDeviceType()
    {
        return deviceType;
    }
    public void setNation(String nation)
    {
        this.nation = nation;
    }

    public String getNation()
    {
        return nation;
    }
    public void setUnit(String unit)
    {
        this.unit = unit;
    }

    public String getUnit()
    {
        return unit;
    }
    public void setCount(Long count)
    {
        this.count = count;
    }

    public Long getCount()
    {
        return count;
    }
    public void setPrice(BigDecimal price)
    {
        this.price = price;
    }

    public BigDecimal getPrice()
    {
        return price;
    }
    public void setCounts(BigDecimal counts)
    {
        this.counts = counts;
    }

    public BigDecimal getCounts()
    {
        return counts;
    }
    public void setForex(BigDecimal forex)
    {
        this.forex = forex;
    }

    public BigDecimal getForex()
    {
        return forex;
    }
    public void setTender(String tender)
    {
        this.tender = tender;
    }

    public String getTender()
    {
        return tender;
    }
    public void setImplementation(String implementation)
    {
        this.implementation = implementation;
    }

    public String getImplementation()
    {
        return implementation;
    }
    public void setTechBook(Long techBook)
    {
        this.techBook = techBook;
    }

    public Long getTechBook()
    {
        return techBook;
    }
    public void setMarketReport(Long marketReport)
    {
        this.marketReport = marketReport;
    }

    public Long getMarketReport()
    {
        return marketReport;
    }
    public void setPurcRequest(Long purcRequest)
    {
        this.purcRequest = purcRequest;
    }

    public Long getPurcRequest()
    {
        return purcRequest;
    }
    public void setEnquery(Long enquery)
    {
        this.enquery = enquery;
    }

    public Long getEnquery()
    {
        return enquery;
    }
    public void setContractStatus(Long contractStatus)
    {
        this.contractStatus = contractStatus;
    }

    public Long getContractStatus()
    {
        return contractStatus;
    }
    public void setDeliveryTime(Long deliveryTime)
    {
        this.deliveryTime = deliveryTime;
    }

    public Long getDeliveryTime()
    {
        return deliveryTime;
    }
    public void setEquipAccept(Long equipAccept)
    {
        this.equipAccept = equipAccept;
    }

    public Long getEquipAccept()
    {
        return equipAccept;
    }
    public void setRemainFund(Long remainFund)
    {
        this.remainFund = remainFund;
    }

    public Long getRemainFund()
    {
        return remainFund;
    }
    public void setOrderTime(Date orderTime)
    {
        this.orderTime = orderTime;
    }

    public Date getOrderTime()
    {
        return orderTime;
    }
    public void setFeedback(String feedback)
    {
        this.feedback = feedback;
    }

    public String getFeedback()
    {
        return feedback;
    }
    public void setContractYf(String contractYf)
    {
        this.contractYf = contractYf;
    }

    public String getContractYf()
    {
        return contractYf;
    }
    public void setContractAmount(Long contractAmount)
    {
        this.contractAmount = contractAmount;
    }

    public Long getContractAmount()
    {
        return contractAmount;
    }
    public void setContractTime(Date contractTime)
    {
        this.contractTime = contractTime;
    }

    public Date getContractTime()
    {
        return contractTime;
    }
    public void setContractNumber(String contractNumber)
    {
        this.contractNumber = contractNumber;
    }

    public String getContractNumber()
    {
        return contractNumber;
    }
    public void setFundResource(String fundResource)
    {
        this.fundResource = fundResource;
    }

    public String getFundResource()
    {
        return fundResource;
    }
    public void setProjectId(Long projectId)
    {
        this.projectId = projectId;
    }

    public Long getProjectId()
    {
        return projectId;
    }
    public void setDevicelifeStatus(Long devicelifeStatus)
    {
        this.devicelifeStatus = devicelifeStatus;
    }

    public Long getDevicelifeStatus()
    {
        return devicelifeStatus;
    }
    public void setFirstMoney(String firstMoney)
    {
        this.firstMoney = firstMoney;
    }

    public String getFirstMoney()
    {
        return firstMoney;
    }
    public void setFirstMoneyTime(Date firstMoneyTime)
    {
        this.firstMoneyTime = firstMoneyTime;
    }

    public Date getFirstMoneyTime()
    {
        return firstMoneyTime;
    }
    public void setProgressOne(String progressOne)
    {
        this.progressOne = progressOne;
    }

    public String getProgressOne()
    {
        return progressOne;
    }
    public void setProgressOneTime(Date progressOneTime)
    {
        this.progressOneTime = progressOneTime;
    }

    public Date getProgressOneTime()
    {
        return progressOneTime;
    }
    public void setProgressTwo(String progressTwo)
    {
        this.progressTwo = progressTwo;
    }

    public String getProgressTwo()
    {
        return progressTwo;
    }
    public void setProgressTwoTime(Date progressTwoTime)
    {
        this.progressTwoTime = progressTwoTime;
    }

    public Date getProgressTwoTime()
    {
        return progressTwoTime;
    }
    public void setEndMoney(String endMoney)
    {
        this.endMoney = endMoney;
    }

    public String getEndMoney()
    {
        return endMoney;
    }
    public void setEndMoneyDate(Date endMoneyDate)
    {
        this.endMoneyDate = endMoneyDate;
    }

    public Date getEndMoneyDate()
    {
        return endMoneyDate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("deviceId", getDeviceId())
                .append("deviceName", getDeviceName())
                .append("deviceType", getDeviceType())
                .append("nation", getNation())
                .append("unit", getUnit())
                .append("count", getCount())
                .append("price", getPrice())
                .append("counts", getCounts())
                .append("forex", getForex())
                .append("tender", getTender())
                .append("implementation", getImplementation())
                .append("techBook", getTechBook())
                .append("marketReport", getMarketReport())
                .append("purcRequest", getPurcRequest())
                .append("enquery", getEnquery())
                .append("contractStatus", getContractStatus())
                .append("deliveryTime", getDeliveryTime())
                .append("equipAccept", getEquipAccept())
                .append("remainFund", getRemainFund())
                .append("orderTime", getOrderTime())
                .append("feedback", getFeedback())
                .append("contractYf", getContractYf())
                .append("contractAmount", getContractAmount())
                .append("contractTime", getContractTime())
                .append("contractNumber", getContractNumber())
                .append("fundResource", getFundResource())
                .append("projectId", getProjectId())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .append("devicelifeStatus", getDevicelifeStatus())
                .append("firstMoney", getFirstMoney())
                .append("firstMoneyTime", getFirstMoneyTime())
                .append("progressOne", getProgressOne())
                .append("progressOneTime", getProgressOneTime())
                .append("progressTwo", getProgressTwo())
                .append("progressTwoTime", getProgressTwoTime())
                .append("endMoney", getEndMoney())
                .append("endMoneyDate", getEndMoneyDate())
                .toString();
    }
}
